#define _CRT_SECURE_NO_WARNINGS 1
#include <stdlib.h>
#include <stdio.h>
//typedef int SLTDataType;
//typedef struct SListNode
//{
//	SLTDataType data;
//	struct SListNode* next;
//}SLTNode;
//
//void PrintSList(SLTNode* phead)
//{
//	SLTNode * pa = phead;
//	while (pa!= NULL)
//	{
//		printf("%d ", pa->data);
//		pa = pa->next;//next指向下一个链头的地址，将此地址赋给pa，就可以找到下一个数据
//	}
//	printf("NULL\n");
//}
//int main()
//{
//	SLTNode *n1=(SLTNode*)malloc(sizeof (SLTNode));
//	n1->data = 10;
//	SLTNode* n2 = (SLTNode*)malloc(sizeof(SLTNode));
//	n2->data = 20;	
//	SLTNode* n3 = (SLTNode*)malloc(sizeof(SLTNode));
//	n3->data = 30;
//	n1->next = n2;
//	n2->next = n3;
//	n3->next = NULL;
//	PrintSList(n1);
//}

//轮转数组
//void rotate(int* nums, int numsSize, int k)
//{
//	int n = numsSize;
//	int* tmp = (int*)malloc(sizeof(int) * n);
//	k %= n;
//	memcpy(tmp, nums + n - k, sizeof(int)*(k));
//	memcpy(tmp+k, nums , sizeof(int)*(n-k));
//	memcpy(nums, tmp, sizeof(int)*(n));
//	free(tmp);
//}
//int main()
//{
//	int nums[5] = { 1,2,3,4,5 };
//	int k = 0;
//	int i = 0;
//	scanf("%d", &k);
//	int numsSize = sizeof(nums) / sizeof(nums[0]);
//    rotate(nums, numsSize, k);
//	int* p = nums;
//	for (i = 0; i < 5; i++)
//	{
//		printf("%d ",nums[i]);
//	}
//	return 0;
//}
//消失的数字
int missingNumber(int* nums, int numsSize)
{
	int N = numsSize;
	int ret = N * (N + 1) / 2;
	for (int i = 0; i < N; i++)
	{
		ret -= nums[i];
	}
	return ret;
}
int main()
{
	int nums[20] = { 9, 6, 4, 2, 3, 5, 7, 0, 1 };
	int numsSize = sizeof(nums) / sizeof(nums[0]);
	int n=missingNumber(nums, numsSize);
	printf("%d", n);
}
